Secure spontaneous associations between networkable devices

ABSTRACT

In a first aspect, the present invention provides a protocol for communications across a securable communication channel between a first device and a second device. The protocol includes the transmission of a plurality of uniquely identifiable messages which each include security-related data, from the first device to the second device. The protocol includes determining whether a subset of messages that are received by the second device comply with at least one predetermined message criterion and are identifiable as having been sent from the first device. In the event that said subset of messages are determined to comply with the predetermined verification criterion (or criteria) and are identifiable as having been sent from the first device, the security-related data is determined to have been successfully communicated to the second device.

FIELD OF THE INVENTION

The present invention relates generally to establishing and verifying secure associations formed between networkable devices.

BACKGROUND OF THE INVENTION

One of the goals of modern computing is to provide people with ubiquitous computing environments. In these computing environments it is necessary to allow devices to become spontaneously associated and interoperable with other devices.

An association can be said to have been made between two (or more) devices when each device possesses data (e.g. another device's network address) that allows the devices to communicate with each other. An association is considered to be secure if a secret encryption key has been established and is known only to the associated devices. Due to the ad-hoc nature of such spontaneous associations the connections formed between devices will generally take place over wireless communication links. However, in some situations wired connections, or combinations of wired and wireless connections will also be used to make spontaneous associations between devices.

The creation of spontaneous associations between devices raises security concerns for users of the devices. In the first instance there is the need for suitable key-exchange protocols to establish secure associations between devices. However even once a key-exchange protocol has been run it is difficult, if not impossible, for the user(s) of the associated devices to verify that the key-exchange protocol has run successfully and that the association is truly secure.

SUMMARY OF THE INVENTION

In a first aspect, the present invention provides a protocol for communications across a securable communication channel between a first device and a second device. The protocol includes the transmission of a plurality of uniquely identifiable messages which each include security-related data, from the first device to the second device. The protocol includes determining whether a subset of messages that are received by the second device comply with at least one predetermined message criterion and are identifiable as having been sent from the first device. In the event that said subset of messages are determined to comply with the predetermined verification criterion (or criteria) and are identifiable as having been sent from the first device, the security-related data is determined to have been successfully communicated to the second device.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of present invention will now be described by way of non-limiting example only, with reference to the accompanying drawings, in which:

FIG. 1 shows a schematic representation of an association formed between two devices in accordance with an embodiment of the present invention; and

FIG. 2 shows a flow chart depicting a method for ensuring that associated devices each know the other's public key and network address in accordance with an embodiment of the present invention; and.

FIG. 3 shows a flow chart depicting a method for verifying that a secure association has been made between two devices in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

FIG. 1 shows a schematic diagram representing an association 104 that has been formed between two computer devices, namely a personal digital assistant (PDA) 100 and a notebook computer 102.

In the present example, the PDA 100 and the notebook computer 102 are connected to a communications network 106 via wireless links 108 and 110 respectively. The communications network 106 is a broadcast network operating according to a standard such as IEEE 802.11a, IEEE 802.11b and IEEE 802.11g. In such a network 106 both devices 100 and 102 are required to tune to a common broadcast channel and receive all packets sent on that channel.

As will be appreciated by those skilled in the art the association 104 between the devices 100 and 102 may alternatively be formed over any type of communications channel, including non-broadcast type wireless or wired communications links or via any combination of wired and wireless computer networks. However the ability of the exemplary embodiments described herein to operate in a broadcast network of the type described above is particularly advantageous.

It should also be noted that the operation of the protocols described herein can be conducted over a network connection or communication channel that is different to the channel over which the association is formed. However, for clarity of description, the exemplary embodiments are described herein with the protocols and the association using the same communications channel.

FIG. 2 shows a flow chart depicting a process 200 for communicating a public key of a sender device to a receiver device that can be used when forming an association such as the one described in connection with FIG. 1. For example the process 200 could be used to exchange public keys between devices as a precursor to running a key-exchange protocol to secure the association. The encryption of the association 104 can be implemented using a key exchange protocol, such as the Diffie-Hellman key exchange protocol, described in Whitfield Diffie and Martin Hellman, “New Directions in Cryptography”, IEEE Transactions on Information Theory, v. IT-22, n.6, November 1976. Other key exchange protocols may also be used.

Prior to exchanging public keys the devices to be associated must determine which of them will initially be the sender device and which will be the receiver. This determination can be made in accordance with a predetermined selection protocol.

The selection protocol could be implemented in a wide variety of ways, for example the first sender may be designated as the device having the highest value IP address. Alternatively if the associated devices include a public device (such as a network printer) and a private device, the private device can be designated to be the first sender. In a preferred embodiment the selection protocol should be secure in the sense that a attacker should not be able to fool both devices into either the sender or receiver mode.

For illustrative purposes suppose that the PDA 100 is the initial “sender” and that the notebook 102 is the initial “receiver” device.

In a first step of the method 202 the sender device generates a plurality of messages M_(i) where i=1 . . . n. Each of the messages M_(i) include the sender's public key (sender_key), the sender's network address (sender_add) and a randomly selected message identifier R_(i). Each message M_(i) also includes a value H_(i) that represents a transform of sender_key, sender_add and R_(i).

In the general case the transformation can take the form of function h(x) which generates a substantially irreversible transformation of its input. The function h(x) is preferably a one-way function that has the property that given h(x) it is computationally infeasible to compute x. The transformation chosen in the preferred embodiment is a secure hash function, such as MD5 or SHA-1.

Each message M_(i) is formatted according to a predetermined message format. In the preferred embodiment M_(i) takes the form (H_(i),sender_key,sender_add,R_(i)). The form of the message can be used at a later stage to verify that the message has not been tampered with or otherwise corrupted in transit between the sender and the receiver device.

As will be appreciated the sender device can generate a plurality of messages for use in the method by either precomputing them or generating them on-the-fly.

In the next step 204 the messages M_(i) are sent to the receiver device. As the sender-key included in the message is the public key of the sender device there is no need for secrecy when sending the messages M_(i).

Preferably the messages are sent at a predefined rate, e.g. 100 messages per second. If the messages M_(i) are precomputed a sufficient number of messages should be computed to allow the sender device to send messages for a predetermined time period, say between 1 and 3 seconds. For safety some arbitrary number, say 1000, messages can be precomputed. If on the other hand the messages are being computed on the fly then the sender device can continue generating the messages and communicating them to the receiver device until the sender device hears back from the receiver device in step 212 (as will be explained below).

In the network as described above the receiver device is configured to monitor all messages sent on the broadcast channel regardless of the intended receiver, and at 206 a plurality of messages are received at the receiver device. Next 208 the receiver device checks whether the messages M_(i) that it has received meet one or more predetermined criteria. In the preferred embodiment the receiver device checks whether the received messages are in the predetermined data format described above, that is that M_(i)=(H_(i),sender_key,sender_add,R_(i)). The receiver device also checks whether the received H_(i) is the transform of the received sender_key, sender_add, and received R_(i).

The receiver device also checks that for all of the messages received have the same sender_add value and the same sender_key value and that the messages M_(i) are received at least at a second predefined rate. The messages should be received by the receiver device at a rate comparable to the transmission rate used by the sender device. However in practice the second predefined rate may be less that the first predefined rate. If the second predefined rate is too far below the first predefined rate of the messages M_(i) then the protocol can be aborted, as this may be a sign that a man-in-the-middle attack on the association is being mounted.

If any of the received messages do not meet the predetermined criterion the protocol is aborted at 210. Alternatively if the predetermined criteria is met the second device extracts 212 the message identifiers R_(i) from each received message for later use.

The receiver device is configured to continue receiving messages until a predetermined number of messages M_(i) have been received or for a until a predetermined time has elapsed from the time at which it first receives a message M_(i) from the sender device. Once either of these criteria are met the receiver device switches into sending mode and stops monitoring the broadcast channel and the extracted message identifiers R_(i) are sent back to the sender device at step 214.

Next 216 the sender device checks whether the each received extracted message indicator R_(i) is the same as the message indicators R_(i) sent in the original plaintext of the corresponding message M_(i).

If the extracted R_(i) equals the sent R_(i) then the public key, and network address of the first device have successfully been communicated to the user of the second device 218.

Alternatively if the decrypted message identifier R_(i) of any one of the messages M_(i) is not the same as the original message identifier then the protocol is aborted at 220.

In the preferred embodiment once it has been verified that the first device's network address and public key have successfully been sent to the second device, the roles of the devices can be switched and the process repeated to communicate the public key and network address of the second device to the first device. Thus in the present example the PDA 100 becomes the receiver and the notebook computer 102 becomes the sender and steps 202 to 220 are repeated.

By running the protocol successfully in both directions the users of the devices can be certain that each of the devices has the correct public key of the other device and the correct network address of the other device. The devices can then use any public key based key exchange protocol to set up a shared secret key to secure an association formed between them.

When forming a spontaneous association between two devices there will be times that even though a key exchange protocol has been run it will be necessary or desirable for the users of the devices to verify that the key change protocol was run correctly and that both devices have the same secret key. An exemplary embodiment of a protocol for performing such a verification will now be described with reference to FIGS. 1 and 3. The association that has been formed is as described in connection with FIG. 1. The association has supposedly been encrypted using a key exchange protocol. The key exchange protocol is a key exchange protocol having the property that it is impossible for a man in the middle to use the protocol set up the same secret key with both devices 100 and 102 such as the Diffie-Hellman key exchange protocol.

Again it is a necessary as a precursor to running the verification protocol that the first and second devices use some predefined selection protocol to determine which device (the PDA100 or Notebook Computer 102) will be the initial “sender” and which will be the initial “receiver”. The same selection protocol used above may again be used.

In a first step 302 of the protocol the sender device generates a plurality of messages M_(i), where M_(i) includes the receiver address (receiver_add) and a message identifier (R_(i)). The message M_(i) is encrypted using the secret key of the sender device. In the preferred embodiment R_(i) s a random number which is chosen for inclusion in message M_(i).

As described above in connection with the key exchange protocol the messages M_(i) can be pre-computered, or generated on the fly. If the messages are pre-computered the number of messages generated n should be large enough so that the sender will not run out of messages when transmitting them to the receiver advice in subsequent steps of the method.

In the next step 304 the sender device sends messages M_(i) where i=1 . . . n to the receiver device at a predefined rate. In the preferred embodiment the predefined rate is 100 messages per second. The messages M_(i) may be transmitted over a channel designated for running this protocol, or alternatively the messages M_(i) may be broadcast over some predefined channel.

In the preferred embodiment, the sender device transmits messages for between 1 and 3 seconds so that the receiver device had sufficient time to configure itself into “receiver” mode.

In receiver mode the receiver device listens for all messages sent on the designated communications channel regardless of its intended receiver (or receivers). For every message the receiving device receives it verifies (at 308) that it can decrypt the message using its encryption key. The receiver device also verifies that the decrypted message include its true receiver address. If either of these verifications steps fails the receiver aborts the protocol at 310.

If the verification is successful then the receiver device stores the received message identifier R_(i) in its memory. As we appreciated by those skilled in the art a plurality of such messages M_(i) will be decrypted and plurality of message identifiers R_(i) will be stored.

The receiver device is configured to continue listening until a predetermined number of messages have been received, decrypted, and had their message identifiers R_(i) extracted until a predetermined time has elapsed from the time at which it first receives a message from the sender device. Once either of these criteria are met the receiver device switches into sending mode and stops monitoring the broadcast channel. In step 312 the receiver device sends each of the stored message identifiers R_(i) back to the sender device.

The sender device at 314 verifies that the message identifiers R_(i) received from the receiver device match those that were originally sent by it at 304. If the message identifiers R_(i) do not match those which were originally included in the plaintext of the corresponding message M_(i) the sender device aborts the protocol at 316 and the verification is deemed to have failed.

Alternatively if the received message identifiers R_(i) match those which were sent originally by the sender device then it is verified that K_(sender)=K_(receiver), where K_(sender) is the secret key possessed by the sender device and K_(receiver) is the secret key possessed by the receiver device. It is also verified that the sender device has the receiver device's correct network address.

In order to complete the verification of the security of the association formed between the two devices the roles of the sender device and receiver device are switched (318) and the protocol is repeated (320) to verify that the receiver device has the correct network address of the sender device.

By running the protocol in the reverse direction, that is with the “initial sender” acting as receiver and the “initial receiver” acting as sender, a second check is made on whether both devices share the same secret encryption key, i.e. K_(sender)=K_(receiver).

It will be noted that if the protocols described above are run using a broadcast network such as IEEE 802.11 then difficulties will arise if a plurality of un-associated devices attempt to run the protocol concurrently.

Thus it can be seen from the above that using the preferred embodiment of the above protocol it is possible to verify that the two devices are securely associated without using any additional or specialised hardware such as indicator lights etc.

It will be understood that the invention disclosed and defined herein extends to all alternative combinations of two or more of the individual features mentioned or evident from the text or drawings. All of these different combinations constitute various alternative aspects of the invention.

The foregoing describes embodiments of the present invention and modifications, obvious to those skilled in the art can be made thereto, without departing from the scope of the present invention. 

1. A method for communicating a public key of a sender device to a receiver device, the method comprising: transmitting a plurality of messages to the receiver device, each message including a first message portion including the public key of the sender device and a message identifier, and a value representing a predetermined transformation of the first message portion; receiving at least a subset of the plurality of messages at the receiver device; verifying that each received message fulfils at least one predetermined criterion; extracting a respective message identifier from each received messages; transmitting the message identifiers extracted from the received messages to the sender device; and verifying that each of said transmitted message identifiers that are received at the sender device are message identifiers that were included in a message of the plurality of messages transmitted to the receiver device.
 2. The method of claim 1 wherein the plurality of messages are transmitted to the receiver device at a first predetermined rate, and the method includes: verifying that the plurality of messages are received at the receiver device at a second predetermined rate.
 3. The method of claim 2 including randomly selecting the message identifier for each message.
 4. The method of claim 3 wherein the value representing the predetermined transformation of the first message portion is generated using a secure hash function.
 5. The method of claim 4 wherein the first message portion further includes a network address of the sender device.
 6. The method of claim 4 including storing the message identifiers extracted from the received messages at the receiver device; and communicating the stored message identifiers to the sender device once a predetermined number of messages have been received by the receiver device.
 7. The method of claim 4 including storing the message identifiers extracted from the received messages at the receiver device; and communicating the stored message identifiers to the sender device after a predetermined time has elapsed from a time at which a first message was received by the receiver device.
 8. The method of claim 4 in which the messages have a predetermined format, and wherein verifying that each received message fulfils at least one predetermined criterion, includes verifying that each of the subset of messages received by the receiver device are in the predetermined format.
 9. The method of claim 5 wherein the method is terminated if at least one of the following occur: the value representing the predetermined transformation of the first message portion of a message of the subset of messages received by the receiver device is not correct; a common sender key is not included in each message of the subset of messages received by the receiver device; the messages of the subset of messages received by the receiver device are not received at the second predefined rate; a common sender network address is not included in each message of the subset of messages received by the receiver device.
 10. A method for communicating a public key of a sender device to a receiver device, the method comprising: transmitting a plurality of messages to the receiver device, each message including a first message portion including the public key of the sender device and a message identifier, and a value representing a predetermined transformation of the first message portion; receiving from the receiver device a plurality of message; verifying that each of said received messages includes a message identifier that was sent to the receiver device in a message of the plurality of messages transmitted to the receiver device.
 11. The method of claim 10 wherein the first message portion of the plurality of messages further includes a network address of the sender device.
 12. The method of claim 11 wherein the plurality of messages are transmitted to the receiver device at a first predetermined rate.
 13. The method of claim 12 wherein the value representing the predetermined transformation of the first message portion of the messages in the plurality of messages are generated using a secure hash function.
 14. A method for verifying that an association formed between a first device and second device has been secured with a valid session key pair including: transmitting a set of message from the first device to the second device wherein each message includes a unique message identifier and is encrypted with a session key of the first device; verifying the reception and decryption of at least a subset of the transmitted set of messages by the second device wherein the decryption is performed using a session key of the second device; verifying the content of the subset of messages received and decrypted by the second device including verifying that a message identifier portion of at least some of the subset of messages received and decrypted by the second device include a message identifiers that were included in a message of the transmitted set of messages.
 15. The method of claim 14 where the method further includes: transmitting a second set of messages from the second device to the first device wherein each message includes a unique message identifier and is encrypted with a session key of the second device; verifying the reception and decryption of at least a second subset of the transmitted second set of messages by the first device wherein the decryption is performed using a session key of the first device; verifying the content of the second subset of messages received and decrypted by the first device including verifying that a message identifier portions of at least some of the second subset of messages include a message identifier that was included in a message of the transmitted second set of messages.
 16. The method of claim 14 in which verifying the content of the subset of messages received and decrypted by the second device includes transmitting to the first device a set of verification messages each message including at least a message identifier portion of one of the subset of messages received and decrypted by the second device.
 17. The method of claim 16 wherein the messages of the set of transmitted messages each further include a network address of the second device and wherein verifying the content of the subset of messages received and decrypted by the second device include verifying that each received and decrypted message includes the network address of the second device.
 18. The method of claim 16 wherein the set of messages are transmitted to the first device at a first predefined rate and the second set of messages is transmitted at a second predefined rate.
 19. The method of claim 18 wherein verifying the reception and decryption of at least a subset of the transmitted messages includes verifying that the subset of messages are received at the second device at a rate less than or equal to the first predefined rate.
 20. The method of claim 19 wherein verifying the content of the subset of messages received and decrypted, includes the first device; identifying a message identifier in the set of verification messages to the first device that was included in a message of the set of messages that was sent at an earliest time, and verifying that set of the verification messages include message identifiers from a predetermined proportion of message in the set of messages that were sent between the earliest time, and a time of reception of the first verification message by the first device.
 21. The method of claim 15 in which verifying the content of the subset of messages received and decrypted by the second device includes transmitting a set of verification messages wherein each message includes at least the message identifier portion of a respective one of the subset of messages received and decrypted by the second device, and verifying the content of the second subset of messages received and decrypted by the second devices includes transmitting a second set of verification message including wherein each verification message includes at least the message identifier portion of a respective one of the messages in the second subset of messages.
 22. The method of claim 21 wherein the messages in the set of messages each further include a network address of the second device and wherein verifying the content of the subset of messages received and decrypted by the second device include verifying that each received and decrypted message includes t he return address of the second device and the messages of the second set of transmitted messages each further include a network address of the first device and wherein, verifying the content of the subset of messages received and decrypted by the second device includes verifying that each received and decrypted message of the second set includes the network addresses of the first device.
 23. The method of claim 22 wherein verifying the reception and decryption of at least a subset of the transmitted messages includes verifying that the subset of messages are received at the second device at a rate less than or equal to the first predefined rate and verifying the reception and decryption of at least a second subset of the transmitted messages includes verifying that the second subset of messages are received at the first device at a rate less than or equal to the second predefined rate.
 24. A method of verifying that an association formed between a first device and a second device has been secured with a valid session key pair including: transmitting a set of messages from the first device to the second device wherein each message includes a unique message identifier and is encrypted using a session key of the first device; awaiting confirmation from the second device that it has received and decrypted at least a subset of the set of messages, said confirmation including the transmission of a set of verification messages wherein each message includes a message identifier extracted from the subset of messages received and decrypted by the second device; and verifying that said set of verification messages is received from the second device and that the set of verification messages includes a plurality of message identifiers that were included in respective messages of the transmitted set of messages.
 25. The method of claim 24 which further includes receiving a second subset of messages from the second device; verifying that the received second subset of messages can be decrypted and that each one includes a unique message identifier; transmitting to the second device a second set of verification messages wherein each verification message includes at least a message identifier from a message of the received second subset of messages.
 26. A method for verifying that a secure association been formed between a first device and a second device by verifying that each device possesses a network address of the other device and a common encryption key is shared by the two devices, said method including: generating a first cipher text by encrypting, using a secret encryption key of the first device, plaintext including the second device's network address and a message identifier; communicating the first cipher text to the second device; decrypting the received first cipher text at the second device to obtain a decrypted plain text; verifying that the decrypted plain text includes the network address of the second device, and a message identifier; communicating the decrypted message identifier to the first device; and verifying that the decrypted message identifier and the message identifier included in the plaintext are equal; encrypting, using a secret encryption key of the second device, second plaintext including the first device's network address, and a message identifier to generate a second cipher text; communicating the second cipher text to the first device; decrypting the received second cipher text at the first device to obtain a decrypted second plain text; verifying that the decrypted second plaintext includes the network address of the first device, and a message identifier; communicating the decrypted message identifier to the second device; and verifying that the decrypted message identifier and the message identifier included in the second plaintext are equal.
 27. The method of claim 26 wherein a plurality of messages are generated and transmitted to the receiver device at a first predetermined rate.
 28. The method of claim 27 including verifying that the plurality of messages are received at the receiver device at a second predetermined rate.
 29. The method of claim 28 including randomly selecting the message identifier for each message.
 30. A protocol for communications across a securable communication channel between a first device and a second device, the protocol including: transmitting a plurality of uniquely identifiable messages including at least security-related data from the first device to the second device; determining whether a subset of messages received by the second device comply with at least one predetermined message criterion and are identifiable as having been sent from the first device; and in the event that said subset of messages are determined comply with said at one or more predetermined verification criterion, and are identifiable as having been sent from the first device, verifying that said security-related data has been communicated to the second device.
 31. The protocol of claim 30 which further includes transmitting the plurality of messages at a first predetermined rate, and determining a rate of reception of the subset of messages by the second device.
 32. The protocol of claim 30 wherein at least one the predetermined verification criterion are based on one or more of the following: the ability of the second device to decrypted one or more of the messages; the number of messages received by the second device; the rate of reception of messages by the second device; the form of the messages received by the second device; the content of messages received by the second device.
 33. The protocol of claim 32 wherein determining whether a message was sent by the first device includes: extracting a unique identifier from each received message and; transmitting the at least said extracted unique identifier back to the first device.
 34. The protocol of claim 33 wherein each of said plurality of uniquely identifiable messages is encrypted.
 35. The protocol of claim 33 wherein each of said plurality of messages is includes a first portion containing at least a unique message identifier and a second portion comprising a predetermined transform of the first portion.
 36. The protocol of claim 34 wherein the protocol is configured to be used to verify that the communication channel over which communication is being conducted has been secured by a valid session key pair.
 37. The protocol of claim 35 wherein the protocol is configured to communicate at least a public key of the first device to the second device. 